package com.yan.yjhTest.webservice.client;

import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;

import com.yan.yjhTest.webservice.HelloService;

/**
 * 此时，只需在本地提供一个 HelloService 的接口，无需 client.jar，
 * 直接面向 WSDL 编程，只不过您需要分别定义出 serviceName 与 portName 这两个东西，
 * 最后才能调用 JDK 提供的 javax.xml.ws.Service 类生成 service 对象，
 * 它同样是一个工厂对象，通过该工厂对象获取我们需要的 HelloService 实例。
 * 貌似这种方式也不是特别动态，毕竟 HelloService 接口还是需要自行提供的。
 *
 */
public class DynamicClient {

	public static void main(String[] args) {
		try {
			URL wsdl = new URL("http://localhost:8080/ws/soap/hello?wsdl");
            QName serviceName = new QName("http://client.webservice/", "HelloService");
            QName portName = new QName("http://client.webservice/", "HelloServicePort");
            Service service = Service.create(wsdl, serviceName);

            HelloService helloService = service.getPort(portName, HelloService.class);
            String result = helloService.say("world");
            System.out.println(result);
		} catch (Exception e) {
			
		}
	}

}
